﻿using System;
using System.Data.Entity;
using System.Linq;
using System.Web.Services;
using TS2015.Models;

namespace TS2015
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class getcontentepu : System.Web.Services.WebService
    {
        [WebMethod]
        public string ContentRequest(string username, string password, string serviceid, string msisdn, string parameters, string mode, string amount)
        {
            #region
            //0	Content for client	Success
            //1	(empty)	Failed

            //300	(empty)	Invalid Parameter(s)
            //301	(empty)	Invalid username or password
            //302	(empty)	Server too busy
            #endregion
            using (var db = new TS2015Context())
            {
                // Mac dinh tra ve la sai Ma thi sinh
                string result = "300";
                DateTime time = DateTime.Now;
                //Kiem tra thong tin tai khoan
                if (username== "orcservice" && password == "orcsv_epu2015")
                {
                    var item = db.TbThiSinhs.Where(e => e.MaTS == parameters.ToUpper().Replace("TS ", "").Trim()).FirstOrDefault();
                    
                    //Kiểm tra có tìm thấy thí sinh không
                    if (item != null)
                    {                        
                        // Nếu chưa đóng tiền thì cập nhật trạng thái
                        if (!item.TrangThaiDongTien)
                        {
                            if (mode.Trim().ToUpper() == "CHECK")
                                result = "0"; // Tra ve ket qua kiem tra co ma thi sinh ko cho Vietel
                            else
                                if (mode.Trim().ToUpper() == "REAL") // Khi da tru tien thi cap nhat trang thai
                                {
                                    item.TrangThaiDongTien = true;
                                    item.NgayDongTien = time;
                                    item.TrangThaiHoanThanh = true;
                                    db.Entry(item).State = EntityState.Modified;
                                    db.SaveChanges();

                                    result = "0|Ban da kich hoat thanh cong"; // Trả về mã trạng thái kích hoạt thành công là 0
                                }
                        }
                        else
                            result = "1"; // Mã trạng thái đã đóng tiền là 1
                    }                  
                }
                else
                    result = "301"; // Sai thong tin dang nhap

                //Ghi log
                db.TbLogServices.Add(new TbLogService
                    {
                        parameters = parameters,
                        amount = amount,
                        mode = mode,
                        msisdn = msisdn,
                        service = "get content",
                        result = result,
                        username = username,
                        password = password,
                        serviceid = serviceid,
                        chargetime = time,
                    });

                db.SaveChanges();

                return result;
            }
        }
    }
}
